package algorithm.niuke;

/**
 * 斐波那契数列
 *
 * @author jack.wu
 * @version 1.0
 * @date 2020-05-09
 */
public class Fibonacci {

    public static void main(String[] args) {
        Fibonacci f = new Fibonacci();
        int num = f.fibonacci(0);
        System.out.println(num);
    }

    /**
     * 要求输入一个整数n，请你输出斐波那契数列的第n项
     *
     * @param n 第n项
     * @return 第n项的值
     */
    public int fibonacci(int n) {
        // 定义一个数列
        int[] sequence = new int[39];
        // 填充斐波那契数列（当前值= 前两项值相加）
        sequence[0] = 0;
        sequence[1] = 1;
        for (int i = 2; i < sequence.length; i++) {
            sequence[i] = sequence[i - 2] + sequence[i - 1];
        }
        return sequence[n];
    }
}
